#ifndef GUI_H
#define GUI_H

#include <QMainWindow>
#include <QStackedWidget>
#include <QtGlobal>

#include "../Core/core.h"
#include "glcanvas.h"
#include "textlog.h"


namespace Ui
{
        class GUI;
}


class GUI : public QMainWindow
{

        Q_OBJECT


        enum
        {
            CANVAS,
            TEXTLOG
        };



        public:


                        explicit GUI(QWidget *parent = 0);
                        ~GUI();



        private
        slots:

                        void on_action_Open_triggered();

                        void on_action_Points_triggered();

                        void on_action_Wireframe_triggered();

                        void on_actionSolid_Flat_triggered();

                        void on_actionSolid_Smooth_triggered();

                        void on_action_Hidden_Line_triggered();

                        void on_actionSave_s_napshot_triggered();

                        void on_action_Messages_triggered();

                        void on_action_Vertex_color_triggered();

                        void on_action_Meshes_triggered();

                        void on_actionFace_color_smooth_triggered();

                        void on_actionFace_color_flat_triggered();

                        void on_action_Texture_1D_triggered();

                        void on_action_Mean_Curvature_triggered();

                        void on_action_Export_to_POV_Ray_triggered();

                        void on_actionOpen_Texture_2D_triggered();

                        void on_actionTexture_2D_triggered();

                        void on_actionSave_silhouette_triggered();

                        void on_actionSave_augmented_silhouette_triggered();

                        void on_action_Gaussian_curvature_triggered();




        protected:


                        void createConnections();



        private:


                        Ui::GUI *ui;

                        GLCanvas *glCanvas;

                        TextLog * textLog;

                        Core *core;


};

#endif // GUI_H
